package com.db.stexchem.serialization;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import com.db.stexchem.message.ExecutionReport;
import com.db.stexchem.message.LoginRequest;
import com.db.stexchem.message.LoginResponse;
import com.db.stexchem.message.Message;
import com.db.stexchem.message.Order;
import com.db.stexchem.message.PlaceOrderResponse;

public interface Serializer {
  public void serialize(OutputStream outputStream, LoginRequest loginRequest) throws IOException;
  public void serialize(OutputStream outputStream, LoginResponse loginResponse) throws IOException;
  public void serialize(OutputStream outputStream, Order order) throws IOException;
  public void serialize(OutputStream outputStream, PlaceOrderResponse placeOrderResponse) throws IOException;
  public void serialize(OutputStream outputStream, ExecutionReport executionReport) throws IOException; 
  public LoginResponse deserializeLoginResponse(InputStream inputStream) throws IOException;
  public LoginRequest deserializeLoginRequest(InputStream inputStream) throws IOException;
  public Order deserializeOrder(InputStream inputStream) throws IOException;
  public Message deserializeMessage(InputStream inputStream) throws IOException;
}
